Факт | fact
Тип функций fact (факт) применяется в качестве условий или вопросов, а так же как
утверждения:
Если цвет стен зелёный, то ... // условие
Цвет стен зелёный? // вопрос
Цвет стен зелёный. // утверждение
Факты могут входить в состав логических выражений, а также как условия в состав
условных конструкций.
На этапе парсинга строки происходит проверка факта. Результат проверки - всегда логи-
ческое значение. Для условий результат проверки влияет на дальнейшее выполнение услов-
ной конструкции, для вопросов результат проверки является финальным результатом стро-
ки, для утверждений результат не важен.
После однозначного разбора строки с утверждением происходит выполнение этого утвер-
ждения (в нашем примере стенам будет присвоен зелёный цвет). Выполнение утверждения
изменяет состояние игры. Цвет стен зелёный в комнате 5 человек Пример функции факта:
fact (нельзя_пройти, локация, локация)
{
== check ==
yes //по умолчанию никуда нельзя пройти
}
Секции в фактахВ фактах допускаются секции: parsing (парсинг) check (проверка) execute (выполнение) Секция parsing (парсинг)Секция универсальна для всех типов функций. Смотрите описание в разделе Парсерные функции. Секция check (проверка)
Секция check (проверка) в фактах проверяет факт на его соответствие действительности
и возвращает да/нет. Именно эта секция позволяет использовать факты в условных
конструкциях.
факт (предмет А, весит, число Б)
{
-- проверка --
А.вес == Б?
-- выполнение --
А.вес = Б
}
если камень весит 100 то {...}
Секция execute (выполнение)
Секция execute (выполнение) в факте должна сделать так, чтобы факт стал истинным.
факт (предмет А, весит, число Б)
{
-- проверка --
А.вес == Б?
-- выполнение --
А.вес = Б
}
По своей сути факт – это инструмент создателя игры, позволяющий перекроить игровой мир. То, что указывается в факте, всегда истинно. В связи с этим, секция execute (выполнение) для фактов работает только в режиме "вне игры", иначе игрок мог бы очень сильно изменить игровой мир. Смотрите такжеSystem_GetState, System states, System state value class |
to do: Отформатировать. Проверить корректность. Дополнить. |